Embodiments of the invention generally pertain to systems and methods for processing data. In particular, embodiments of the invention pertain to systems and methods for decoding data.
Different decoders can be used to decode data to achieve different results. Recent codes, such as turbo or low-density parity check (LDPC) codes, typically rely on iterative decoding. Iterative decoders are a type of decoder in which the decoding task is performed repetitively until stopping criterion are achieved. These stopping criterion can be based on meeting or exceeding a specific degree of certainty or uncertainty in the results of the decoding.
More particularly, an iterative decoder takes information from a channel as input and performs the decoding by iteratively passing messages between computation nodes. The computation nodes represent the symbols within a codeword. The decoder takes the information from the channel, hereinafter referred to as “channel information,” and passes it to a computation unit which takes into account the particular code structure. This computation unit then passes information from the computation unit, hereinafter known as “extrinsic information,” back to each computation node. The computation nodes then use this extrinsic information together with the channel information to compute new messages to the computation unit. This process occurs repetitively until stopping criterion are satisfied.
Iterative decoders are very powerful in correcting random errors. Errors may occur for a number of reasons, including, for example, noise or interference in data transmission, scratches on a CD or DVD surface, defects in a magnetic medium, and/or other reasons. One particular type of error is called burst error. A burst error is a contiguous sequence of symbols, received over a data transmission channel, such that no contiguous sub-sequence of m symbols was received correctly. The integer parameter m is referred to as the guard band of the burst error. The last symbol in a burst and the first symbol in the following burst are accordingly separated by m correct bits or more.
The performance of iterative decoders suffers severely when burst errors occur. Thus, there is a continuing interest in improving the burst error correction capability of iterative decoders.